1. Field of the Invention
This invention relates in general to downloading data such as parameters and/or program code to an electronic device, and more particularly, to the provision of a generic “download entity” (or data object) for use by an electronic device such as a disk drive, where only data from the download entity which is associated with a determined device type for the electronic device is retained by the electronic device.
2. Description of Related Art
As products are offered with a wider variety of specifications, capacities and features, it becomes increasingly difficult and costly to develop, produce, maintain and support these products. For example, disk drives may be designed with varying capacities, data transfer rates, communication interfaces (e.g., IDE or SCSI), etc. Within a given product line, while a significant portion of the drive mechanical and hardware components may be shared by different models, there may still be significant design variations, e.g., different numbers/sizes of disks and different numbers of heads. Similarly, while the basic functions and operations of the program code (which may include instructions, parameters, and other data) in a line of disk drives may be similar, the differences between models require differences in the program code for each model.
One approach for supporting the program code requirements of multiple models or designs is to generate a single program code implementation that, depending upon the “device type” of the particular device in which the program code is installed, executes different routines and/or utilizes different parameters to in effect customize the program code for the particular device. However, maintaining duplicate routines and parameter tables to support multiple device types greatly increases space requirements. Moreover, the additional processing required for runtime support of multiple device types may adversely impact drive performance.
Another approach for supporting multiple device types is to generate separate “versions” of the program code for different device types, then load only one version into a particular device. However, this requires knowledge at the downloading end (either by an operator or a downloading computer) of the device type of the device to be loaded.
This requirement has drawbacks in many applications such as disk-drive arrays where multiple disk drives are linked together and controlled by an array controller, since different types of drives may be used together. Downloading to different drives in the array (e.g., to provide program code updates) may be burdensome and time consuming, and it may be difficult for a manufacturer to support multiple device types. Moreover, automated downloading may be particularly burdensome if it is difficult for the array controller to detect the device type of each drive.
Therefore, a substantial need has arisen for a manner of downloading data such as operating instructions, parameters and the like to electronic devices which supports multiple device types with minimum space requirements and without requiring knowledge of the device type by the downloading system.